/*
定义变量的时候，变量名前面加上final关键词，就变成常量，后面无法再修改值；
如果对一个类前面加final关键词，则这个类无法再派生出子类；
如果对一个方法前面加上final关键词，则这个方法不能再被重写；
如果对类的成员变量加上final关键词，则除了在类的构造方法里对成员变量赋值外，其他方法都不能修改成员变量了

学习完封装、继承、多态后，如果确定某些变量或方法不会再被改变，推荐使用final关键词定义，jvm有优化
 */
package com.test.Encapsulation_Inheritance_Polymorphism;

public final class FinalAgain {  //final类无法被继承
    private final String name;  //类成员变量被定义为final，只能在构造方法里赋初始值
    private final int age;

    public FinalAgain(String name, int age){  //在构造方法里对final成员变量赋值
        this.name = name;
        this.age = age;
    }

    public final void test() {  //final方法不能被重写
        System.out.println("我是final方法，不能重写我");
    }
}
